﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using WC.BL.BCC;
using WC.BL.BE;
using System.Collections.Generic;
using System.IO;

namespace WC.UI.WebApp
{
    public partial class MantPopUps : System.Web.UI.Page
    {
        #region Metodos internos
        private void limpiarPopup()
        {
            txtTituloI.Text = string.Empty;
            ddlRamoFiltro.SelectedValue = string.Empty;
            txtFInicio.Text = string.Empty;
            txtFFin.Text = string.Empty;
        }

        private void cargarCombos(DropDownList ddl)
        {
            try
            {
                ddl.DataSource = SectorBC.list();
                ddl.DataBind();

            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        private void cargaGrilla()
        {
            //try
            //{
                List<PopUPBE> lst = PopUpBC.read(new PopUPBE(0, "", ddlRamoFiltro.SelectedValue, txtFechaInicio.Text,
                                                            txtFechaFin.Text, txtTitulo.Text));
                cgvPopUp.DataSource = lst;
                cgvPopUp.DataBind();
                Session["lst"] = lst;
                //if (lst.Count == 0)
                //{
                //    cgvPopUp.EmptyDataText = "No se encontraron resultados para la búsqueda.";
                //}
            //}
            //catch (Exception ex)
            //{
            //    Session["Mensaje"] = ex.Message;
            //}
            //finally
            //{
            //   ((Main)Master).muestraMensajes();
            //}
        }

        private void grabarImg( string archivo, string rutaServ)
        {
            int maxsize = HelperBC.getMaxFileSize(); int maxbytes = maxsize * 1024;
            if ((flimage.PostedFile != null) && (flimage.PostedFile.ContentLength > 0))
            {
                if (flimage.Value.ToUpper().EndsWith(".JPG") ||
                    flimage.Value.ToUpper().EndsWith(".ICO") ||
                    flimage.Value.ToUpper().EndsWith(".GIF") ||
                    flimage.Value.ToUpper().EndsWith(".PNG"))
                {
                    if (flimage.PostedFile.ContentLength <= maxbytes)
                    {
                        string fn = System.IO.Path.GetFileName(flimage.PostedFile.FileName);
                        rutaServ = rutaServ.Replace("/", ((char)92).ToString());
                        string SaveLocation = Server.MapPath(@"~" + (char)92 + rutaServ + fn);
                        try
                        {
                            flimage.PostedFile.SaveAs(SaveLocation);
                        }
                        catch (Exception ex)
                        {
                            Session["Mensaje"] = ex.Message;
                        }
                    }
                    else
                    {
                        Session["Mensaje"] = "El tamaño del archivo debe ser menor a " + maxsize.ToString() + "KB.";
                    }

                }
                else
                {
                    Session["Mensaje"] = "No se puede cargar el archivo seleccionado, por favor seleccione una imagen válida.";
                }
            }
            else
            {
                //this.lblmessage.Text = "Seleccione un archivo que cargar.";
            }

        }
        #endregion

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                try
                {
                    ((Main)Master).checkUser(true);//Sirve para validar si el usuario es ADMIN
                    cargarCombos(ddlRamoFiltro);
                    this.ibtnBorrar.Visible = false;
                    txtFechaInicio.Text = DateTime.Today.AddDays(-30).ToString("dd/MM/yyyy");
                    txtFechaFin.Text = DateTime.Today.ToString("dd/MM/yyyy");
                }
                catch { }
            }
        }

        protected void btnGrabarI_Click(object sender, EventArgs e)
        {
            try
            {
                int maxsize = HelperBC.getMaxFileSize(); int maxbytes = maxsize * 1024;
                if (Session["operacion"] != null)
                {
                    if ((flimage.PostedFile != null) && (flimage.PostedFile.ContentLength > 0))
                    {
                        if ((flimage.Value.ToUpper().EndsWith(".JPG") ||
                             flimage.Value.ToUpper().EndsWith(".ICO") ||
                             flimage.Value.ToUpper().EndsWith(".GIF") ||
                             flimage.Value.ToUpper().EndsWith(".PNG")) &&
                             (flimage.PostedFile.ContentLength <= maxbytes))
                        {
                            if (((string)Session["operacion"]).Equals("write"))
                            {
                                PopUPBE popup = new PopUPBE();
                                popup.Titulo = txtTituloI.Text;
                                popup.Imagen = System.IO.Path.GetFileName(flimage.PostedFile.FileName);
                                popup.Fechai = txtFInicio.Text;
                                popup.Fechaf = txtFFin.Text;
                                popup.Ramo_id = ddlRamoFiltro.SelectedValue;

                                if (!PopUpBC.write(popup).Equals("0"))
                                {
                                    grabarImg(flimage.PostedFile.FileName, ParametroBC.Instance.getParamValue("RutaImgPopUp"));
                                    Session["Mensaje"] = "El pop up fue registrado con Éxito.";
                                }
                                else
                                {
                                    Session["Mensaje"] = "El pop up no fue registrado. Vuelva a intentarlo.";
                                }
                            }
                            else if (((string)Session["operacion"]).Equals("update"))
                            {
                                PopUPBE popup = (PopUPBE)Session["PopUPBE"];
                                popup.Titulo = txtTituloI.Text;
                                popup.Imagen = System.IO.Path.GetFileName(flimage.PostedFile.FileName);
                                popup.Fechai = txtFInicio.Text;
                                popup.Fechaf = txtFFin.Text;
                                popup.Ramo_id = ddlRamoFiltro.SelectedValue;

                                if (!PopUpBC.update(popup).Equals(""))
                                {
                                    grabarImg(flimage.PostedFile.FileName, ParametroBC.Instance.getParamValue("RutaImgPopUp"));
                                    Session["Mensaje"] = "El pop up fue registrado con Éxito.";
                                }
                                else
                                {
                                    Session["Mensaje"] = "El pop up no fue registrado. Vuelva a intentarlo.";
                                }
                            }
                            cargaGrilla();
                        }
                        else
                        {
                            Session["Mensaje"] = "Verifique que el archivo sea una imagen y pese menos de " + maxsize.ToString() + "KB.";
                        }
                    }
                    else
                    {
                        Session["Mensaje"] = "Falta seleccionar un archivo.";
                    }
                }
            }
            catch (Exception ex)
            {
                Session["Mensaje"] = ex.Message;
            }
            finally
            {
                ((Main)Master).muestraMensajes();
            }
        }

        protected void btnCancel_Click(object sender, EventArgs e)
        {

        }
        protected void ibtnBuscar_Click(object sender, EventArgs e)
        {

           
        }

        protected void btnSetUpdt_OnClick(object sender, EventArgs e)
        {
            if (((ImageButton)sender).ID.ToString().Equals("btnAdd"))
            {
                this.limpiarPopup();
                Session["operacion"] = "write";
                mpePopUp1.Show();
            }
            else if (((ImageButton)sender).ID.ToString().Equals("ibtnBorrar"))
            {
                int selectedValue = int.Parse(Request.Form["radio"]);
                if (selectedValue > 0)
                {
                    Session["Mensaje"] = PopUpBC.delete(selectedValue);
                    cargaGrilla();
                }
            }
            
        }

        protected void lnkTitulo_OnClick(object sender, EventArgs e)
        {

        }

        protected void cgvPopUp_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            try
            {
                //if (txtTitulo.Text.Equals(""))
                {
                    int idx = Convert.ToInt32(e.CommandArgument);
                    List<PopUPBE> lst = (List<PopUPBE>)Session["lst"];
                    string mID = lst[idx].Popup_id.ToString();
                    PopUPBE PopUp = PopUpBC.read(int.Parse(mID));
                    if (PopUp != null)
                    {
                        txtTituloI.Text = PopUp.Titulo;
                        txtFInicio.Text = PopUp.Fechai;
                        txtFFin.Text = PopUp.Fechaf;
                        ddlRamoFiltro.SelectedValue = PopUp.Ramo_id;
                        Session["PopUPBE"] = PopUp;
                        Session["operacion"] = "update";
                        mpePopUp1.Show();
                    }
                }
            }
            catch { }
        }

        protected void ibtnBuscar_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                cargaGrilla();
            }
            catch (Exception ex)
            {
                Session["Mensaje"] = ex.Message;
            }
            finally
            {
                ((Main)Master).muestraMensajes();
            }
        }

    }
}
